package com.zhc.validate.parser;

import com.zhc.validate.entity.Parameter;
import com.zhc.validate.entity.Task;

import java.lang.reflect.Method;
import java.lang.reflect.Type;
import java.util.List;

public class ParameterParser {
    public static List<Parameter> parse(Task task) {
        Method method = task.getMethod();
        Type[] types = method.getGenericParameterTypes();
        List<Parameter> parameters = new java.util.ArrayList<>(types.length);

        for (int i = 0; i < types.length; i++) {
            Type type = types[i];
            Parameter parameter = new Parameter();

            parameter.setIndex(i);
            parameter.setType(type);
            TypeParser.parse(parameter);

            parameters.add(parameter);
        }

        return parameters;
    }
}
